In a virtualization environment, a host software (e.g., a hypervisor) running on one or more software or hardware infrastructures (i.e., a host machine) may emulate, or virtualize, the host machine for a guest software. In other words, a hypervisor implements a virtual machine (VM) to provide services to the guest software. The hypervisor deploys the VM on the host machine by loading data utilized to implement the VM (i.e., a VM image) from a repository into memory of the host machine.
If the VM image is stored in a remote repository, the hypervisor copies the VM image from the remote repository to a local repository and deploys the VM using the VM image in the local repository. Deployment of the VM is delayed until the VM image is completely copied to the local repository. In another implementation, the VM is deployed on a remote server over a network, which raises latency issues, requires the host machine to be constantly connected to the remote server, and requires the remote server to manage support and updates for the VM.